/*
 * Copyright (C) 2024 HiHope Open Source Organization.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import IDeviceConnectListener from "./i_device_connect_listener";

export default interface IMiracastPlayerService {
    startMiracastService(callback: startMiracastServiceCallback): void;
    stopMiracastService(callback: stopMiracastServiceCallback): void;
    registerDeviceConnectListener(listener: IDeviceConnectListener, callback: registerDeviceConnectListenerCallback): void;
    unRegisterDeviceConnectListener(listener: IDeviceConnectListener, callback: unRegisterDeviceConnectListenerCallback): void;
    setSurface(surfaceId: string, callback: setSurfaceCallback): void;
    play(deviceId: string, callback: playCallback): void;
    pause(deviceId: string, callback: pauseCallback): void;
    stop(deviceId: string, callback: stopCallback): void;
}
export type startMiracastServiceCallback = (errCode: number, returnValue: number) => void;
export type stopMiracastServiceCallback = (errCode: number, returnValue: number) => void;
export type registerDeviceConnectListenerCallback = (errCode: number, returnValue: number) => void;
export type unRegisterDeviceConnectListenerCallback = (errCode: number, returnValue: number) => void;
export type setSurfaceCallback = (errCode: number, returnValue: number) => void;
export type playCallback = (errCode: number, returnValue: number) => void;
export type pauseCallback = (errCode: number, returnValue: number) => void;
export type stopCallback = (errCode: number, returnValue: number) => void;

